From 7ca113f7ccbc295adc73df6921af553e9e9ec512 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Tue, 30 Dec 2025 12:36:57 +0100 Subject: [PATCH] keyboardManager: Remove unnecessary calls There is no longer need to freeze/unfreeze/ungrab the keyboard. This API was only effective in the X11 backend. Part-of: --- js/misc/keyboardManager.js | 13 ------------- js/ui/status/keyboard.js | 19 ++----------------- 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/js/misc/keyboardManager.js b/js/misc/keyboardManager.js index 2ecc8facc..924caa8c8 100644 --- a/js/misc/keyboardManager.js +++ b/js/misc/keyboardManager.js @@ -1,8 +1,6 @@ import GLib from 'gi://GLib'; import GnomeDesktop from 'gi://GnomeDesktop'; -import * as Main from '../ui/main.js'; - export const DEFAULT_LOCALE = 'en_US'; export const DEFAULT_LAYOUT = 'us'; export const DEFAULT_VARIANT = ''; @@ -29,17 +27,6 @@ export function getKeyboardManager() { return _keyboardManager; } -export function releaseKeyboard() { - if (Main.modalCount > 0) - global.backend.unfreeze_keyboard(global.get_current_time()); - else - global.backend.ungrab_keyboard(global.get_current_time()); -} - -export function holdKeyboard() { - global.backend.freeze_keyboard(global.get_current_time()); -} - class KeyboardManager { constructor() { // The XKB protocol doesn't allow for more than 4 layouts in a diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js index a4d85debd..fe2dc6746 100644 --- a/js/ui/status/keyboard.js +++ b/js/ui/status/keyboard.js @@ -408,10 +408,8 @@ export class InputSourceManager extends Signals.EventEmitter { _modifiersSwitcher() { const sourceIndexes = Object.keys(this._inputSources); - if (sourceIndexes.length === 0) { - KeyboardManager.releaseKeyboard(); + if (sourceIndexes.length === 0) return true; - } let is = this._currentSource; if (!is) @@ -498,16 +496,6 @@ export class InputSourceManager extends Signals.EventEmitter { } activateInputSource(is, interactive) { - // The focus changes during holdKeyboard/releaseKeyboard may trick - // the client into hiding UI containing the currently focused entry. - // So holdKeyboard/releaseKeyboard are not called when - // 'set-content-type' signal is received. - // E.g. Focusing on a password entry in a popup in Xorg Firefox - // will emit 'set-content-type' signal. - // https://gitlab.gnome.org/GNOME/gnome-shell/issues/391 - const holdKeyboard = !this._reloading; - if (holdKeyboard) - KeyboardManager.holdKeyboard(); this._keyboardManager.apply(is.xkbId); let engine; @@ -519,10 +507,7 @@ export class InputSourceManager extends Signals.EventEmitter { engine = `xkb:${name}:${variant}:${lang}`; } - this._ibusManager.setEngine(engine).then(() => { - if (holdKeyboard) - KeyboardManager.releaseKeyboard(); - }); + this._ibusManager.setEngine(engine); this._currentInputSourceChanged(is); -- 2.39.5